import threading
from csgencoder import *
class UserCmd(object):
    socket = None
    def set_socket(self, socket):
        self.socket = socket

    def listen_for_input(self):
        """
        创建并启动一个线程来监听用户输入，当用户输入回车时打印用户输入的数据。
        """
        def input_listener():
            """
            线程函数，监听标准输入并打印用户输入的数据。
            """
            while True:
                try:
                    # 使用 input() 函数等待用户输入，input() 会阻塞直到用户按下回车键
                    user_input = input("Enter command: ")
                    substrings = user_input.split(" ")
                    if len(substrings) < 2:
                        print("Invalid input.eg: 0A E0001000")
                    else:
                        print("AFN:", substrings[0], "DI:", substrings[1])
                        if substrings[0] == '0A':
                            f = build_read_param(substrings[1])
                            if self.socket:
                                self.socket.sendall(f)
                                print("send:", f.hex())
                except EOFError:
                    # 用户可能使用了Ctrl+D (Unix) 或 Ctrl+Z (Windows) 来发送EOF信号
                    print("Exiting input listener.")
                    break

        # 创建一个新的线程并启动
        input_thread = threading.Thread(target=input_listener)
        input_thread.start()

# 示例使用
if __name__ == "__main__":
    cmd = UserCmd()
    cmd.listen_for_input()